default: binaries

######################################################
# Flags
######################################################

CPPFLAGS += -I.
CXXFLAGS += -DHASH_NAMESPACE=__gnu_cxx

######################################################
# Functions
######################################################

include scripts/cc_rules.mk
include scripts/js_rules.mk
include scripts/proto_rules.mk

######################################################
# Packages
######################################################

include base/targets.mk
include file/targets.mk
include flame/targets.mk
include graph/targets.mk
include proto/targets.mk
include shell/targets.mk
include strings/targets.mk
include tools/targets.mk
include util/targets.mk
include v8/targets.mk

######################################################
# Data
######################################################

$(eval $(call js_scripts_binarypb, \
    share/process_user_request.binarypb, \
        flame/tool/process_user_request \
))

######################################################
# Collections
######################################################

binaries : $(CC_BINARIES)
compilation_tests : $(COMPILATION_TESTS)
compile : binaries compilation_tests

js_tests : $(JS_TESTS)
cc_tests : $(CC_TESTS)
test : js_tests cc_tests

######################################################
# House-keeping
######################################################

clean :
	find . -name '*.bin' -delete
	find . -name '*.compile' -delete
	find . -name '*.deps' -delete
	find . -name '*.header_deps' -delete
	find . -name '*.o' -delete
	find . -name '*.object_deps' -delete
	find . -name '*.pb.cc' -delete
	find . -name '*.pb.h' -delete
	find . -name '*test.out' -delete
	rm -rf share/
	rm -f $(CC_BINARIES)
